package com.wy.blocking_queue_impl;

import java.util.Scanner;

/**
 * @author 美女
 * @date 2022/05/02 15:45
 **/
public class Main2 {
    static MyArrayBlockingQueue queue=new MyArrayBlockingQueue(3);
    static class MyThread extends Thread{
        @Override
        public void run() {
            Scanner scanner=new Scanner(System.in);
            long e=scanner.nextLong();
            try {
                queue.take();//取一个出来，队列就不满了，4就能放入了
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }
    public static void main(String[] args) throws InterruptedException {
        MyThread t=new MyThread();
        t.start();
        queue.put(1);
        queue.put(2);
        queue.put(3);
        queue.put(4);//由于容量为3，所以第四个放不进去-阻塞
        System.out.println("4被放入");
    }
}
//子线程等在scanner处
//主线程等在4处
//子线程在输入元素处等待，随便输入一个值让他向下执行
//只要执行到take()步骤拿走一个元素，主线程中queue.put(4)由于队列未满就能放入元素了
//由于生产者阻塞，消费者唤醒的过程